package com.xuecheng.search.service;

import com.xuecheng.api.search.dto.CoursePubIndexDTO;
import com.xuecheng.api.search.qo.QueryCoursePubModel;
import com.xuecheng.common.domain.page.PageRequestParams;
import com.xuecheng.common.domain.page.PageVO;
import com.xuecheng.common.domain.response.RestResponse;

/**
 * 课程搜索服务层
 */
public interface CoursePubSearchService {

    /**
     * <p>
     * 分页 条件查询发布的课程
     * </p>
     *
     * @param params 分页参数封装
     * @param model  条件参数封装
     * @return PageVO<CoursePubIndexDTO>
     */
    PageVO<CoursePubIndexDTO> queryCoursePubIndexWithCondition(PageRequestParams params,
                                                               QueryCoursePubModel model);

    /**
     * <p>
     * 根据课程发布id查询发布信息
     * </p>
     *
     * @param coursePubId 课程发布id
     * @return CoursePubIndexDTO
     */
    CoursePubIndexDTO queryCoursePubById(Long coursePubId);

    /**
     * <p>
     * 微服务调用
     * </p>
     *
     * @param coursePubId 课程发布id
     * @return RestResponse<CoursePubIndexDTO>
     */
    RestResponse<CoursePubIndexDTO> getCoursePubById(Long coursePubId);
}
